﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TESalgorithm
{
    /// <summary>
    /// 使用的长度单位
    /// </summary>
    public enum LengthUnit
    {
        meter=0,
        micons=1,
        nanometer=2,
    }
    public class Constant
    {
        /// <summary>
        /// 真空中光速m/s
        /// </summary>
        public const double c = 3e8;
        /// <summary>
        /// 普朗克数
        /// </summary>
        public const double h = 6.62606896e-34;
        /// <summary>
        /// 玻尔兹曼常数J/K
        /// </summary>
        public const double k = 1.3806e-23;
        /// <summary>
        /// 圆周率
        /// </summary>
        public const double pi = 3.14159265358979;


        //MMD和最小发射率的经验关系表达为
        //发射率最小值=a-b*MMD^c
        
        /// <summary>
        /// MMD_a
        /// </summary>
        public static double MMD_a => 0.994;
        /// <summary>
        /// MMD_b
        /// </summary>
        public static double MMD_b => 0.687;
        /// <summary>
        /// MMD_c
        /// </summary>
        public static double MMD_c => 0.737;


        /// <summary>
        /// Aster中心波长
        /// </summary>
        public static List<double> AsterCenter =new List<double>{8.3, 8.7, 9.1,10.6,11.3};

        /// <summary>
        /// Aster半高宽
        /// </summary>
        public static List<double> AsterFWHM = new List<double> {0.35, 0.35, 0.4, 0.7, 0.6 };

        //宽波段设置为8~12微米
        public static double WidebandCenter = 10;

        public static double WidebandWidth = 2;

        /// <summary>
        /// NEM算法迭代次数限制
        /// </summary>
        public const int NEM_N= 12;

        public const int TES_M = 1;

        /// <summary>
        /// 最大发射率
        /// </summary>
        public const double MaxEmissivity = 0.99;

    }
}
